/**
 * 消息接收类型常量
 * @constant {Object}
 * @property {number} SelectedInfo - 选择信息类型
 * @property {number} InitDevice - 初始化设备类型
 * @property {number} SelectedType - 选择类型
 * @property {number} loadMultipleModels - 加载多个模型
 * @property {number} LogError - 错误日志信息
 * @property {number} Initialized - 初始化完成
 * @property {number} TaskComplete - 任务完成类型
 * @property {number} TrayFlow - 托盘流量
 */
export const ReceiveMessageType = {
  SelectedInfo: 0,
  InitDevice: 1,
  SelectedType: 2,
  loadMultipleModels: 3,
  //错误日志信息
  LogError: 4,
  Initialized: 5,
  TaskComplete: 8, // 新增任务完成类型
  TrayFlow: 9, //托盘流量
};

/**
 * 消息发送类型常量
 * @constant {Object}
 * @property {number} ChangeModel - 修改模型信息
 * @property {number} PlayModel - 播放模型
 * @property {number} LoadModel - 加载模型
 * @property {number} SelectedModel - 选择模型
 * @property {number} TaskAssignment - 任务分配
 * @property {number} TaskCompleteResponse - 任务完成响应类型
 * @property {number} StackerData - 堆垛机数据
 * @property {number} IsSimulation - 是否为模拟
 */
export const SendMessageType = {
  //修改模型信息
  ChangeModel: 0,
  PlayModel: 2,
  LoadModel: 3,
  SelectedModel: 4,
  TaskAssignment: 8,
  TaskCompleteResponse: 9, // 任务完成响应类型
  StackerData: 10,
  IsSimulation: 11,
  // 风路堵塞
  WindRoadBlock: 12,
  // 查看风路
  ViewWindRoad: 13,
  // 清理风路堵塞
  ClearWindRoadBlock: 14,
  // 查看机组控制屏
  ViewTerminalBlock: 15,
  // 综合故障报警
  ComprehensiveFaultAlarm: 16,
  // 查看机组控制箱侧端子
  ViewUnitControlBoxSideTerminal: 17,
  // 查看发电机侧端子
  ViewGeneratorSideTerminal: 18,
  // 退出PTC查看状态
  ExitPTCView: 19,
  // 查看爆炸图
  ViewExplosion: 20,
};

/**
 * 平台类型常量
 * @constant {Object}
 * @property {number} web2unity - Web到Unity
 * @property {number} unity2web - Unity到Web
 * @property {number} android - Android平台
 * @property {number} ios - iOS平台
 */
export const Platform = {
  web2unity: 0,
  unity2web: 1,
  android: 2,
  ios: 3,
};

/**
 * 发送到Unity的数据格式
 * @typedef {Object} SendUnityData
 * @property {number} type - 消息类型，使用SendMessageType
 * @property {any} data - 消息数据
 * @property {number} [platform] - 平台标识，使用Platform
 */

/**
 * 从Unity接收的数据格式
 * @typedef {Object} ReceiveUnityData
 * @property {number} type - 消息类型，使用ReceiveMessageType
 * @property {any} data - 消息数据
 * @property {number} [platform] - 平台标识，使用Platform
 */
